package com.example.demo.Topic.Producer;

import com.example.demo.RabbitMqApplication;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;

//Topic订阅模式 与Route路由模式的区别就是交换机的类型不一样 并且Topic支持key模糊匹配 规则如下 在消费者端进行设置
/*
# 通配符
* (star) can substitute for exactly one word.    匹配不多不少恰好1个词
# (hash) can substitute for zero or more words.  匹配一个或多个词
audit.*   只能匹配 audit.irs
audit.#   可匹配audit.irs.corporate 或者 audit.irs 等
*/

@RunWith(SpringRunner.class)
@SpringBootTest(classes = RabbitMqApplication.class)
public class Producer {

    private static final Logger log = LoggerFactory.getLogger(Producer.class);

    @Autowired
    private RabbitTemplate rabbitTemplate;

    /**
     * Topic模型的生产者
     */
    @Test
    public void testProviderTopic() {
        //    发送消息 参数：             队列名称   发送内容
        rabbitTemplate.convertAndSend("TopicExchange", "test.user", "Topic模型发送消息");
        log.info("Topic模型发送成功");

    }
}
